Differential interface for inter-device communication in a battery management and protection system

ABSTRACT

A multi-cell battery stack includes a microcontroller and a string of battery management and protection IC devices connected to one another in a daisy chain configuration. Each battery management and protection IC device can include a communication interface circuit that includes pairs of differential input signal lines, receivers including respective current comparator circuits to receive differential signals on the differential input signal lines, and transmitters to provide outgoing differential signals on the differential input signal lines. A digital circuit block allows signals to pass between the receivers and transmitters.

CLAIM OF PRIORITY

This application claims priority to U.S. patent application Ser. No.13/442,502, filed on Apr. 9, 2012, the entire contents of which arehereby incorporated by reference.

BACKGROUND

This disclosure relates to an interface for inter-device communicationin a battery management and protection system.

Some devices and systems, such as hybrid electrical vehicles, usemulti-cell battery stacks. Such battery stacks may include, for example,battery cells coupled to one or more integrated circuit (IC) chips. Thechips typically include a controller (e.g., a microcontroller) andcircuitry and provide, among other things, battery cell management andprotection.

In applications that require or use multiple IC devices to handle thebattery cells, the IC devices may be connected to a microcontroller in adaisy chain configuration communication. The interfaces in the daisychain configuration sometimes are connected to one another usingrelatively long (e.g., one meter) unshielded wires. In some applicationssuch as the automotive environment, high noise levels can be injectedinto the wires and cause interference.

SUMMARY

The present disclosure relates to an interface for inter-devicecommunication in a battery management and protection system.

For example, in one aspect, a multi-cell battery stack includes a stringof battery management and protection IC devices connected to one anotherin a daisy chain configuration, and a microcontroller connected to thestring of battery management and protection IC devices.

In some implementations, communication between the battery managementand protection IC devices can occur over differential DC isolatedinterfaces.

In some implementations, each battery management and protection ICdevice includes a communication interface circuit that includes a firstpair of differential input signal lines, a first receiver including afirst current comparator circuit to receive incoming differentialsignals on the first pair of differential input signal lines, and afirst transmitter to provide outgoing differential signals on the firstpair of differential input signal lines, as well as a second pair ofdifferential input signal lines, a second receiver comprising a secondcurrent comparator circuit to receive incoming differential signals onthe second pair of differential input signal lines, and a secondtransmitter to provide outgoing differential signals on the second pairof differential input signal lines. The communication interface circuitalso can include a digital circuit block that allows signals to passfrom the first receiver to the second transmitter and that allowssignals to pass from the second receiver to the first transmitter.

In some implementations, the digital circuit block includes circuitry toperform digital signal decoding and includes a shift register to storeincoming sampled signals, a clock recovery module, and a Manchesterdetector including a control unit and a plurality of logic gates. Arespective pair of sampled signals in the shift register can be fed toone or more of the logic gates, and the control unit can determinewhether or not the sampled signals are valid based on outputs of one ormore of the logic gates and adjusts a window size for valid data basedthereon. Furthermore, in some implementations, the Manchester detectoris operable to generate a decoded data bit based on the sampled signalsin the shift register and to determine a window size for valid data. Thedecoded data bit and the window size can be provided to the clockrecovery module to calculate a phase shift of symbols for correction ofa symbol sampling clock that is provided to the Manchester detector.

One or more of the following advantages are present in someimplementations. For example, some implementations can result in ahighly robust interface that is less susceptible to various types ofnoise and interference. In particular, some implementations can reducethe effects or occurrence of jitter, spikes and frequency deviations.Furthermore, in some implementations, communications between IC devicesin a daisy chain or other configuration can be improved.

Other aspects, features and advantages will be apparent from thefollowing detailed description, the accompanying drawings, and theclaims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a string of battery management and protectionintegrated circuit devices in a daisy chain configuration.

FIG. 2 is a block diagram illustrating examples of components of abattery management and protection integrated circuit device.

FIG. 3 is a circuit diagram of an interchip and microcontrollercommunication interface in the integrated circuit device of FIG. 2.

FIG. 4 illustrates further details of a receiver in the interface ofFIG. 3.

FIG. 5 illustrates further details of the current comparator in FIG. 4.

FIG. 6 is a block diagram showing further details of a digital block inthe interface of FIG. 3.

FIG. 7 illustrates further details of the Manchester detector in FIG. 6.

FIG. 8 is a flow chart of a method implemented by a fine clock recoverymodule.

DETAILED DESCRIPTION

As shown in FIG. 1, a multi-cell battery stack 20 includes amicrocontroller (MCU) 22 connected to a string of battery management andprotection IC devices 24, which are connected to one another, forexample, in a daisy chain configuration. In some implementations, thedaisy chain can include up to sixteen IC devices 24, each of which maybe implemented as a semiconductor chip; in other implementations, adifferent number of IC devices 24 may be included in the chain. Eachbattery management and protection IC device 24 may be electricallyconnected to one or more battery cells 26 (e.g., Li-ion (Lithium ion)battery cells).

In the illustrated example, communication with MCU 22 is carried outthrough the bottommost IC device 24 in the daisy chain over a serialperipheral interface (SPI) or other bus 28. The data then can be passedup the chain from one IC device 24 to the next using a communicationinterface implemented inside each IC device 24. Likewise, data can bepassed down the chain from one IC device 24 to the next using thecommunication interface implemented inside each IC device 24. Thus,commands from MCU 22 are transmitted up the chain of IC device 24, anddata from the IC devices is transmitted down the chain back to MCU 22.In general, MCU 22 serves as the master for initiating upstreamcommunications; whereas the topmost IC device 24 (i.e., the IC device atthe far end of the chain from MCU 22) serves as the master forinitiating downstream communications.

As shown in FIG. 2, in some implementations, each IC device 24 includesits own microcontroller (μC) 30, which may be implemented, for example,as a combination of hardware and software. Device 24 also can includenon-volatile memory and other circuit components integrated in a singleintegrated circuit. For example, some implementations may includeanalog-to-digital (ADC) cell balancing circuitry 32 and battery celltemperature measuring circuitry 34 to facilitate monitoring andmanagement of various characteristics of battery cells 26. Device 24also includes an interchip and microcontroller communication interface36 that, among other things, allows device 24 to communicate with one ormore other devices 24 in the daisy chain and, in the case of the lowestdevice in chain 42, to communicate directly with MCU 22. In addition,each IC device 24 includes multiple input/output pins. Device 24 alsomay include other components.

FIG. 3 illustrates various features of interchip and microcontrollercommunication interface 36. For example, communication between devices24 in the chain is performed over differential DC isolated interfaces.Thus, interface 36 includes a first twisted pair line 100 that providesthe interface to another device 24 in the daisy chain (e.g., the nextdownstream device 24). Interface 36 also includes a second twisted pairline 102 that provides a differential interface to another device 24 inthe daisy chain (e.g., the next upstream device 24). Interface 36includes AC coupling circuitry 104, 106 connected, respectively, to thetwisted pair lines 100, 102. Preferably, interface 36 has low impedancetermination points 108, 110, which in the illustrated example includesresistors (Rterm). For example, in a particular implementation, thetermination resistors (Rterm) have a resistance of about 300 ohm so asto keep the common mode voltage below a specified voltage (e.g., 40 V)and so as to reduce the amount of current during data transmission.

Interface 36 includes analog components, such as bottom receiver 112Aand bottom transmitter 114A, as well as top receiver 112B and toptransmitter 114B. In addition, interface 36 includes a digital block 116that performs functions such as Manchester encoding/decoding, hardwaredirection detection, data and clock recovery and idle mode timing.

For upstream transmissions (e.g., a command initiated by MCU 22), thedifferential signals are received over differential signal lines 120 bybottom receiver 112A, which sends the corresponding data to digitalblock 116 over the “rxdata_bottom” line. The data bypasses digital block116 in a substantially transparent manner to top transmitter 114B overthe “txdata_top” line. Top transmitter 114B then transmits thecorresponding differential signals over differential signal lines 122 tothe next upstream device 24 in the chain.

Likewise, for downstream transmissions (e.g., data from one of thedevices 24), the differential signals are received over differentialsignal lines 122 by top receiver 112B, which sends the correspondingdata to digital block 116 over the “rxdata_top” line. The data bypassesdigital block 116 in a substantially transparent manner to bottomtransmitter 114A over the “txdata_bottom” line. Bottom transmitter 114Athen transmits the corresponding differential signals over differentialsignal lines 120 to the next downstream device 24 in the chain.

As shown in FIG. 3, each receiver 112A, 112B includes input pins toreceive various signals. For example, as explained in greater detailbelow, each receiver 112A, 112B can be implemented, for example, as alow power comparator circuit. The threshold of the comparators can beswitched depending, for example, on whether the receiver is operating inan idle mode or transmission mode. In the illustrated example, the highthreshold of bottom receiver 112A can be set by a signal on the“high_thr_bottom” line, which is controlled by digital block 116.Another signal from digital block 116 on the “idle_bottom” line can beused to reduce current consumption of the comparator by placing thereceiver 112A in an idle mode. In some implementations, a relativelyhigh threshold of at least 750 mV can be used in the idle mode toprovide robustness against interference. During transmission, a lowerthreshold, for example, +150 mV, can be used. Thus, in someimplementations, the magnitude of the higher threshold for the idle modeis at least five times as great as the magnitude of the lower thresholdfor the transmission mode.

In addition, a signal on another line “ddi_bottom_en” can be used toswitch off the physical interface (e.g., receiver 112A and transmitter114A) completely when the signal is set to LOW. In that case, thecomparator pins of receiver 112A are tied to ground to protect the biascircuit from strong interference and can enable the use of externalgrounding of the pins. In general, the signal on the “ddi_bottom_en”line will be set high if the device 24 containing the interface 36 isnot the bottommost device 24 in the stack.

Similar signals can be provided over corresponding lines(“high_thr_top,” “idle_top” and “ddi_top_en”) to control top receiver112B. The signal on the “ddi_top_en” line should be set to a low valueif the device 24 containing the interface 36 is the topmost device 24 inthe chain.

The idle mode has an idle-up condition, which is the standard mode wheninterface 36 is waiting for an upward data transmission, and anidle-down condition, which is the mode when interface 36 is waiting fora downward data transmission. In the idle-up condition, the “txdata_top”line (from digital block 116 to top transmitter 114B) is directlyconnected to the “rxdata_bottom” line (from bottom receiver 112A todigital block 116). On the other hand, in the idle-down condition, the“rxdata_top” line (from top receiver 112B to digital block 116) isdirectly connected to the “txdata_bottom” line (from digital block 116to bottom transmitter 114A). The digital block 116 essentially allowsthe data transmissions to pass from bottom receiver 112A to toptransmitter 114B, or from top receiver 112B to bottom transmitter 114A,in a transparent manner and allows for data transmissions (upward anddownward) to occur with very little delay.

Each receiver 112A, 112B can be implemented, for example, as a very lowpower comparator circuit with a short latency time. The comparatorsshould be able to handle input voltages significantly greater than VDDand significantly less than ground (GND). In some implementations, VDDequals 3 V, and the input voltages can vary from greater than +20V toless than −20V. As shown in FIG. 4, each receiver (e.g., 112A) can beimplemented as a current comparator 202 with low resistive inputs andresistors 204, 206. In the illustrated example, the value of eachresistor 204, 206 is 500 k-ohm. The receiver 112A (or 112B) receives thedifferential input current signals at input terminals IN_P and IN_N overa pair of lines 208, 210.

FIG. 5 illustrates details of a particular implementation of the currentcomparator 202. As shown in this example, the current comparator 202includes class AB voltage output stages 212 as current inputs. MOStransistors NM2, PM2 are for the negative current input IN_N, and MOStransistors NM3, PM3 are for the positive current input IN_P. Thecurrents I1 to I4 are transferred by current mirrors 216 (i.e., MOStransistors NM4 to NM9 and PM4 to PM9) to the summing node VOUT wherethe differential input current generates a digital voltage output.

The following examples illustrate operation of the current comparator202 of FIG. 5 in some implementations. If the input current at terminalIN_P is +40 uA and the input current at terminal IN_N is +39 uA, thencurrent I3 is 39 uA, current I4 is 40 uA, and currents I1 and I2 arezero. In the summing node, the current from the VDD side is larger, andthe output voltage (VOUT) is a digital high signal. If, on the otherhand, the input current at terminal IN_P is −40 uA and the input currentat terminal IN_N is −39 uA, then current I1 is 39 uA, current I2 is 40uA, and currents I3 and I4 are zero. In the summing node, the currentfrom the GND side is larger, and the output voltage (VOUT) is a digitallow signal. In the illustrated example of FIG. 5, the input voltage isnot restricted by VDD or GND. Furthermore, in the illustrated example,current consumption can be very low (e.g., ≦5 uA), and the latency timeof the comparator 202 can be very low (about 40 nanoseconds (ns)) whenthe differential input voltage is about one volt.

Each transmitter 114A, 114B in the communication interface 36 can beimplemented by a driver control portion and digital push/pull outputdrivers. As shown in FIG. 3, each transmitter 114A, 114B includes inputpins to receive various signals. For example, top transmitter 114B canreceive a signal on the “driver_top-en” line from digital block 116 toactivate the driver in transmitter 114B. In the illustratedimplementation, the driver is activated when the bottom receiver 112Adetects the beginning of an upward data transmission. Likewise, bottomtransmitter 114A can receive a signal on the “driver_bottom-en” linefrom digital block 116 to activate the driver in transmitter 114A. Inthe illustrated implementation, the driver is activated as soon as thetop receiver 112B indicates the beginning of downward data transmission.

The signals on the “ddi_bottom_en” line and “ddi_top_en” line can beused to switch on or off the bottom and/or top transmitters 114A, 114B,respectively. The lower transmitter 114A typically will be enabledunless the interface 36 is part of the bottommost device 24 in thestack. Likewise, the top transmitter 114B typically will be enabledunless the interface 36 is part of the topmost device 24 in the stack.

Digital block 116 also provides digital signal decoding. The illustratedimplementation employs Manchester code processing, in which every symbolhas a transition, i.e., the information needed for carrier sensing orsynchronization. Further details of the digital block 116 relating tosuch functionality are described below.

As shown in FIG. 6, signals from one of the receivers 112A, 112B arereceived on an input line 302, which may correspond to the“rxdata_bottom” line for upward transmissions or the “rxdata_top” linefor downward transmissions. The signals on the input line 302 mayrepresent, for example, a command from MCU 22 or data from one ofdevices 24.

In the illustrated example of FIG. 6, digital block 116 includes a shiftregister 306, a Manchester detector 308, a coarse clock recovery module310 and a fine clock recovery module 312. The shift register 306 storessamples of the data input to the differential interface (i.e., receiver112A or 112B). The length of the shift register 206 depends on theoversampling rate of the system. For example, at an oversampling rate ofsixteen samples per symbol, shift register 306 stores twelve to sixteensamples. In the example of FIG. 7, shift register 306 holds eightsamples (i.e., S−4, S−3, S−2, S−1, S+1, S+2, S+3, S+4). If the system issynchronized, and if valid Manchester encoded signals are fed to theinput of Manchester detector 308, and if the channel has no jitter, nofrequency drift and no spikes, then the shift register 306 should storeall 1s (or all 0s) for samples S−4, S−3, S−2, S−1 and should store all0s (or all 1s) for samples S+1, S+2, S+3, S+4. As further illustrated inFIG. 7, Manchester detector 308 includes XOR gates 320, 322, 324, 326and a control unit 330. A pair of samples from the shift register 306 isfed to each XOR gate. Thus, for example, samples S−4 and S+4 are fed toXOR gate 320, samples S−3 and S+3 are fed to XOR gate 322, samples S−2and S+2 are fed to XOR gate 324, and samples S−1 and S+1 are fed to XORgate 326. In the ideal case in which there is no jitter, frequency driftor spikes, the output of each XOR gate 320, 322, 324, 326 should be adigital high level (i.e., 1). Based on the outputs of the XOR gates, thecontrol unit 330 can determine whether or not the samples stored byshift register 306 are valid and can adjust the window size for validdata.

As an example, in a noisy environment, the input signal may be adverselyaffected by different kinds of noise and interference. One challenge isnoise on the voltage supply, which may adversely influence the currentcomparator 202 (see FIGS. 4 and 5) in the differential interface in sucha way that the decision point of the comparator is shifted by a fewmillivolt (mV). Even such a small shift can result in a transient jitterof the input signal edges. The jitter can result in different kinds ofeffects on the input samples. First, samples from a previous and nextManchester symbol may be stored incorrectly in shift register 306 or mayremain in shift register 306. In such a case S−4 (or S+4) would store a1 instead of 0, or a 0 instead of a 1. Control unit 330 detects suchincorrectly stored samples based on the outputs of XOR gates 320 through326. Thus, for example, if the output of XOR gate 320 is 0 instead of 1,control unit 330 ignores samples S−4 and S+4 and uses the next sample(i.e., S−3) as the valid data bit. If the output of XOR gate 322 also is0 instead of 1, control unit 330 ignores samples S−3 and S+3 as well,and moves to the next sample (i.e., S−2) as the valid data bit.

The symbol itself also may be affected by jitter. For example, samplesS−2 and S−1 may have different values compared to S−3 and S−4, or S+1may have a different value compared to S+2 to S+4. Such symbol jitterdoes not influence the functionality of the decoder 308 because thecontrol unit 330 uses the first valid data bit it encounters. Thus, forexample, if the output of XOR gate 320 is 1, the detector 308 usessample S−4 as the valid data bit. Errors in samples S−3 to S+3 aresimply ignored by the detector 308. If the output of XOR gate 320 is 0and the output of XOR gate 322 is 1, the system is considered robust tojitter error of S−2 to S+2.

Another challenge for the Manchester detector 308 is the occurrence ofspikes on the input channel. Such spikes can result in single sampleerrors. Such sample errors can be handled in a manner similar to theoccurrence of jitter on the channel. Thus, if one sample value stored bythe shift register 306 is inverted, the output of the corresponding XORgate 322 through 326 will be 0, and the sample pair (e.g., S−4 and S+4)is ignored.

Control unit 330 thus monitors the outputs of the XOR gates 320 through326. In the illustrated implementation, highest priority is given to theoutput of XOR gate 320, followed by the outputs of XOR gate 322, XORgate 324 and XOR gate 326. The sample pair connected to the first XORgate with an output value of 1 is the reference sample pair. Therefore,if the output of XOR gate 320 is 1, the content of sample S−4 is thevalid data bit. On the other hand, if the output of XOR gate 320 is 0,and the output of XOR gate 322 is 1, then sample S−3 is the valid databit. Likewise, if the output of XOR gate 322 also is 0, and the outputof XOR gate 324 is 1, then sample S−2 is the valid data bit, and soforth.

If the clock frequencies of top receiver 112B and bottom transmitter114A (or bottom receiver 112A and top transmitter 114B) are differentfrom one another, the number of samples to send a symbol from thetransmitter side will be different from the number of samples to capturea symbol on the receiver side. For example, if transmitter 114A has ahigher clock frequency compared to receiver 112B, the oversampling rateof the receiver is lower. If, on the other hand, the transmitter clockfrequency is lower, the oversampling rate at the receiver is higher.This oversampling rate (i.e., samples per symbol) is detected by coarseclock recovery module 310 and fed to the control unit 330 (see FIG. 7).Depending on the number of samples per symbol, control unit 330deactivates or activates XOR gates 320 through 326. The output of adeactivated XOR gate is 0. For example, if transmitter 114B is muchfaster than the receiver clock, control unit 330 deactivates one or moreXOR gates. If transmitter 114A is slower than the receiver clock, one ormore XOR gates are activated by control unit 330.

The foregoing processes also allow control unit 330 to determine a validwindow size, which indicates the valid observation region for phasecalculations by fine clock recovery module 312. In particular, thewindow size should correspond to the calculated number of samples usedto detect the Manchester symbol. If an XOR gate 320 through 326 isdeactivated or if the output of an XOR gate is zero, then the windowsize is reduced by one sample at the start of shift register 306 and byone sample at the end of shift register 306. In the event the windowsize is 0, the Manchester detector 308 is not able to detect the symbol.

Referring back to FIG. 6, as data from receiver 112A or 112B is fed intoshift register 306, an edge detector 314 in the coarse clock recoverymodule 310 detects and counts signal edges (i.e., transitions from 0to 1) to calculate an average symbol timing. A clock lock signal (i.e.,reset) for fine clock recovery module 312 is set if the clock recoveryis successful. The average number of samples per symbol is stored in aregister, and the value is provided to fine clock recovery module 312.Fine clock recovery module 312 starts a symbol sampling clock (clk),which causes Manchester detector 308 to start decoding the samples inshift register 306. The decoded data bit and the valid window size arefed back from Manchester detector 308 into fine clock recovery module312 to calculate a phase shift of the symbols to correct the symbolsampling clk. For this purpose, fine clock recovery module 312 includesa phase shift calculator 316.

Coarse clock recovery module 310 receives samples of the data stored inshift register 306. Coarse clock recovery module 310 also provides thefollowing outputs: a reset (clock lock) signal for fine clock recoverymodule 312 and the number of samples per symbol (or the number ofsamples for a specified number of two or more symbols).

For the coarse clock recovery of the system, it is assumed thattransmitter 114A (or 114B) is sending a 0,1,0,1,0,1,0, . . . sequence,and Manchester detector 308 produces a signal with edges at (or closeto) the ideal sampling points. On the receiver side, coarse clockrecovery module 310 measures the average time between the edges over alonger period. After a sequence of 8-20 symbols, for example, clock islocked, and the average number of samples per symbol is stored in aregister associated with fine clock recovery module 312. Depending onthe accuracy requirements, the average number of samples for a specifiednumber of two or more symbols also can be stored. To increase therobustness of course clock recovery module 310, edge detector 314 canuse multiple samples to detect an edge. For example, in someimplementations, six samples are used to provide robustness against asingle spike before and after the symbol sampling point.

In addition to the input signals received from coarse clock recoverymodule 310, fine clock recovery module 312 receives the window size andthe decoded data bit from Manchester detector 308. Fine clock recoverymodule 312 provides a symbol sampling clock (clk) as an output signal,which is used as a trigger by phase shift calculator 316 and byManchester detector 308.

Fine clock recovery module 312 calculates the phase error of thereceived signal with reference to the ideal symbol sampling point. Asindicated in FIG. 8, this phase error can be calculated, for example, bycounting the number of samples with the same value as the decoded databit in shift register 306 (block 402). The window size information fromManchester detector 308 defines the number of samples in shift register306 to be considered for this calculation. If the number of such samplesis higher than the observation window size divided by two, the samplingpoint is too late (block 404). If the number of such samples is lowerthan the observation window size divided by two, the sampling point istoo early (block 404). The symbol sampling point error can be fed into alow pass filter with a configurable length (block 408). The output ofthe low pass filter increases or decreases the number of samples untilthe next symbol sampling (block 410). After decreasing or increasing thenumber of samples until the next symbol sampling, the low pass filtercan be reset (block 412).

The symbol sampling clock (clk) signal generated by fine clock recoverymodule 312 is provided as an input signal for Manchester detector 308.The other signals received as input by Manchester detector 308 includethe samples stored in shift register 306, a shift register clock derivedfrom a system clock, and the number of samples per a specified number ofsymbols as calculated by course clock recovery module 310. Outputs fromManchester detector 308 include the window size (i.e., the number ofsamples used to detect the Manchester symbol) and the decoded data bit.As noted above, the decoded data bit is provided to fine clock recoverymodule 312 and also can be provided to other components (e.g., amicroprocessor) for further processing.

Other implementations are within the scope of the claims.

1.-13. (canceled)
 14. A battery management and protection integratedcircuit comprising a communication interface circuit that comprises: ashift register to store incoming sampled signals; and a Manchesterdetector including a control unit and a plurality of XOR gates, whereina respective pair of sampled signals in the shift register are fed toone or more of the XOR gates, and wherein the control unit determineswhether or not the sampled signals are valid based on outputs of one ormore of the XOR gates and adjusts a window size for valid data basedthereon.
 15. The battery management and protection integrated circuit ofclaim 14 wherein the control unit receives activates or deactivates oneor more of the XOR gates based on an input signal indicative of a numberof samples per symbol.
 16. The battery management and protectionintegrated circuit of claim 15 wherein an oversampling rate indicativeof the samples per symbol is detected by a clock recovery module and fedfrom the clock recovery module to the control unit.
 17. The batterymanagement and protection integrated circuit of claim 15 wherein thewindow size corresponds to a number of samples used by the Manchesterdetector to detect a symbol.
 18. The battery management and protectionintegrated circuit of claim 17 wherein if one of the XOR gates isdeactivated or if the output of one of the XOR gates is zero, then thecontrol unit reduces the window size by one sample at the start of shiftregister and by one sample at the end of shift register.
 19. The batterymanagement and protection integrated circuit of claim 14 wherein theManchester detector generates a decoded data bit based on the sampledsignals in the shift register, and wherein the decoded data bit and avalid window size are fed from the Manchester detector to a clockrecovery module to calculate a phase shift of symbols for correction ofa symbol sampling clock.
 20. A battery management and protectionintegrated circuit device comprising a communication interface circuitthat comprises: a shift register to store incoming sampled signals; aclock recovery module; and a Manchester detector that generates adecoded data bit based on the sampled signals in the shift register anddetermines a window size for valid data, wherein the decoded data bitand the window size are provided to the clock recovery module tocalculate a phase shift of symbols for correction of a symbol samplingclock that is provided to the Manchester detector.
 21. The batterymanagement and protection integrated circuit of claim 20 wherein theclock recovery module is operable to calculate the phase shift ofsymbols by performing operations including: counting a number samples inthe shift register with the same value as the decoded data bit;determining whether the number of samples in the shift register with thesame value as the decoded data bit is greater or less than half thewindow size; and determining whether a sampling point is too late or tooearly based on determining whether the number of samples in the shiftregister with the same value as the decoded data bit is greater or lessthan half the window size.
 22. The battery management and protectionintegrated circuit of claim 21 the clock recovery module is furtheroperable to perform operations including: feeding a symbol samplingpoint error to a low pass filter with a configurable length; and usingan output of the low pass filter to increase or decrease the number ofsamples until a next symbol sampling.
 23. A multi-cell battery stackcomprising: a string of battery management and protection IC devicesconnected to one another in a daisy chain configuration; and amicrocontroller connected to the string of battery management andprotection IC devices, wherein communication between the batterymanagement and protection IC devices occurs over differential DCisolated interfaces, and wherein each battery management and protectionIC device comprises a communication interface circuit that includes: afirst pair of differential input signal lines; a first receivercomprising a first current comparator circuit to receive incomingdifferential signals on the first pair of differential input signallines; a first transmitter to provide outgoing differential signals onthe first pair of differential input signal lines; a second pair ofdifferential input signal lines; a second receiver comprising a secondcurrent comparator circuit to receive incoming differential signals onthe second pair of differential input signal lines; a second transmitterto provide outgoing differential signals on the second pair ofdifferential input signal lines; and a digital circuit block that allowssignals to pass from the first receiver to the second transmitter andthat allows signals to pass from the second receiver to the firsttransmitter, wherein the digital circuit block comprises circuitry toperform digital signal decoding and includes: a shift register to storeincoming sampled signals; a clock recovery module; and a Manchesterdetector including a control unit and a plurality of logic gates,wherein a respective pair of sampled signals in the shift register arefed to one or more of the logic gates, and wherein the control unitdetermines whether or not the sampled signals are valid based on outputsof one or more of the logic gates and adjusts a window size for validdata based thereon, wherein the Manchester detector generates a decodeddata bit based on the sampled signals in the shift register anddetermines a window size for valid data, and wherein the decoded databit and the window size are provided to the clock recovery module tocalculate a phase shift of symbols for correction of a symbol samplingclock that is provided to the Manchester detector.